package horariofacil;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.PrintWriter;
import java.text.DateFormat;
import java.util.ArrayList;
import java.util.Date;

import horotimo.database.Aluno;
import horotimo.database.GradeHoraria;
import horotimo.database.Usuario;

public class DesSerializadorAlunos {

	
	private static String imprimeData(Date dt) {
		DateFormat df = DateFormat.getInstance();
		String result = "null";
		if (dt != null) {
			result = df.format(dt);
		}
		return result;
	}
	/**
	 * @param args
	 */
	public static void main(String[] args) {

		String diretorioOrigem = args[0];
		String diretorioDestino = "c:\\sat";
		String arquivo = "horario_alunos.ser";
		if (args.length > 1) {
			diretorioDestino = args[1];
		}
		if (args.length > 2) {
			arquivo = args[2];
		}

		System.out.println("Diretorio Origem..:" + diretorioOrigem);
		System.out.println("Diretorio Destino..:" + diretorioDestino);
		System.out.println("arquivo..:" + arquivo);

		FileInputStream fis;
		ObjectInputStream ois;
		try {
			fis = new FileInputStream(diretorioOrigem + "\\" + arquivo + ".ser");
			ois = new ObjectInputStream(fis);
			ArrayList<Aluno> listAlunos = (ArrayList<Aluno>)ois.readObject();
			ois.close();

			PrintWriter pr = new PrintWriter(new File(diretorioDestino + "\\" + arquivo + "_aluno.txt"), "ISO-8859-1");
			String strEmail = "";
			strEmail +=	"<NumAlunos>" + listAlunos.size() + "</NumAlunos>\r\n";

			for (int i = 0; i < listAlunos.size(); i++) {
				Aluno aluno = listAlunos.get(i);
				strEmail +=	"<Aluno_" + i + "_Nome>" + aluno.getNome() + "</Aluno_" + i + "_Nome>\r\n";
				strEmail +=	"<Aluno_" + i + "_Local>" + aluno.getLocal() + "</Aluno_" + i + "_Local>\r\n";
				strEmail +=	"<Aluno_" + i + "_Tipo>" + aluno.getTipo() + "</Aluno_" + i + "_Tipo>\r\n";
				strEmail +=	"<Aluno_" + i + "_NumGrades>" + aluno.getListGrade().size() + "</Aluno_" + i + "_NumGrades>\r\n";
				for (int j = 0; j < aluno.getListGrade().size(); j++) {
					GradeHoraria grade = aluno.getListGrade().get(j);
					strEmail +=	"<Aluno_" + i + "_NumGrade_" + j + "_NomeMateria>" + grade.getNomeMateria() + "</Aluno_" + i + "_NumGrade_" + j + "_NomeMateria>\r\n";
					strEmail += "<Aluno_" + i + "_NumGrade_" + j + "_Quantidade>" + grade.getQuantidade() + "</Aluno_" + i + "_NumGrade_" + j + "_Quantidade>\r\n";
					strEmail +=	"<Aluno_" + i + "_NumGrade_" + j + "_TempoUnitario>" + grade.getTempoAulaUnitario() + "</Aluno_" + i + "_NumGrade_" + j + "_TempoUnitario>\r\n";
				}
			}

			strEmail += "\r\n";
			pr.write(strEmail);
			pr.flush();
			pr.close();
			System.out.println("Exportado com sucesso!");

			PrintWriter pr2 = new PrintWriter(new File(diretorioOrigem + "\\" + arquivo + "_pronto.txt"), "ISO-8859-1");
			pr2.write(args[0]);
			pr2.flush();
			pr2.close();

		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
}